package com.axing.aiguideagent.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestClient;

import java.time.Duration;

/**
 * RestClient 配置
 * 用于配置 HTTP 超时时间，解决 DashScope API 调用超时问题
 */
@Configuration
public class RestClientConfig {

    /**
     * 配置自定义的 RestClient.Builder，增加超时时间
     * 这将被 Spring AI 的 DashScope 自动配置使用
     */
    @Bean
    public RestClient.Builder restClientBuilder() {
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        
        // 设置连接超时：30秒
        requestFactory.setConnectTimeout(Duration.ofSeconds(30));
        
        // 设置读取超时：120秒（2分钟）
        // 这对于 AI 模型生成较长内容时很重要
        requestFactory.setReadTimeout(Duration.ofSeconds(120));
        
        return RestClient.builder()
                .requestFactory(requestFactory);
    }
}

